# 在Python中，字典 是一系列键—值对 。每个键 都与一个值相关联，你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上，可将
# 任何Python对象用作字典中的值。
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])    # 可以使用键来访问与之相关联的值
print(alien_0['points'])
# 修改
alien_0['color']="red"
print(alien_0)
# 添加
alien_0['x']=50
alien_0['y']=100
print(alien_0)
# 删除
del alien_0['points']
print(alien_0)
# 遍历数组
# 先遍历key，在通过key取value的值
for key in alien_0.keys():
    print(key,end=":")
    print(alien_0[key],end=" ")
# 直接遍历出整个字典
for key,value in alien_0.items():
    print("\n"+key+":",end=" ")
    print(value)
# 遍历所有的value
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
print("The following languages have been mentioned:")
for language in favorite_languages.values():
    print(language.title())

# 嵌套
# 列表中套子典
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
    print(alien)
# 遍历
for alien in aliens:
    for key, value in alien.items():
        print(key,":",value)

#  在字典中存储列表
# 存储所点比萨的信息
pizza = {
    'crust': 'thick',
    'toppings': ['mushrooms', 'extra cheese'],
}
# 概述所点的比萨
print("You ordered a " + pizza['crust'] + "-crust pizza " +
        "with the following toppings:")
for key,value in pizza.items():
    if isinstance(value,list):
        for val in value:
            print(val,end=" ")
    else:
        print(key,":",value)
print()

# 在字典中存储字典
users = {
    'aeinstein': {
        'first': 'albert',
        'last': 'einstein',
        'location': 'princeton',
    },
    'mcurie': {
        'first': 'marie',
        'last': 'curie',
        'location': 'paris',
    },
}
for keystr in users.keys():
    print("key:"+keystr)
    value_map=users[keystr]
    print("value_map:",end="\n")
    for key,value in value_map.items():
        print("\t",key,":",value)
